package com.guoyansoft.model.dao;

import com.guoyansoft.model.pojo.Customer;
import com.guoyansoft.model.pojo.PendingOrders;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @author  刘耀诚
 * 待处理订单表dao接口
 */
@Mapper
public interface PendingOrdersDao {

    /**
     * 新增待处理订单信息
     * @param pendingOrders 订单实体
     * @return 受影响的行数
     */
    int insert(PendingOrders pendingOrders);

    /**
     * 修改待处理订单信息
     * @param pendingOrders 订单实体
     * @return 受影响的行数
     */
    int update(PendingOrders pendingOrders);

    /**
     * 删除待处理订单信息
     * @param id 主键数组
     * @return 受影响的行数
     */
    int delete(String[] id);

    /**
     * 根据订单编号查找待处理订单
     * @param id 订单编号
     * @return 订单实体
     */
    PendingOrders selectById(String id);

    /**
     *分页查询
     * @param params 分页信息（startIndex,pageSize） 多条件查询（customPhone，state）
     * @return 订单实体集合
     */
    List<PendingOrders> selectByPage(Map<String,Object> params);

    /**
     *查询总记录数
     * @param params 多条件查询（customPhone，state）
     * @return 订单实体集合
     */
    Long selectTotal(Map<String,Object> params);

    /**
     * 分配调度管理的分页查询
     * @param map
     * @return
     */
    List<PendingOrders> selectByYardmanByPage(Map<String,Object> map);

    List<PendingOrders> selectByCourierByPage(Map<String,Object> map);

    List<PendingOrders> selectByCourierPendingOrders(Map<String,Object> map);
    List<PendingOrders> selectByCustomer(Customer customer);

    int updateState(Map<String,Object> map);
    /**
     *
     *
     * 根据店铺名称查找待处理订单
     * @param params 店铺名(storeName)、分页信息（startIndex,pageSize）
     * @return 订单实体集合
     */
//    List<PendingOrders> selectByStoreName(Map<String,Object> params);

    /**
     * 根据商品名称查找待处理订单
     * @param params 商品名（goodsName）、分页信息（startIndex,pageSize）
     * @return 订单实体集合
     */
//    List<PendingOrders> selectByGoodsName(Map<String,Object> params);

    /**
     * 根据订单状态查找待处理订单
     * @param params 订单状态（state）、分页信息（startIndex,pageSize）
     * @return 订单实体集合
     */
//    List<PendingOrders> selectByState(Map<String,Object> params);

}
